home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / smalleiffel / lib_show / iterator / example3.e < prev    next >
Text File  |  2000-03-25  |  1KB  |  53 lines

  1. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  2. -- software  is  distributed  in the hope that it will be useful, but WITHOUT
  3. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  4. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  5. -- this header is kept unaltered, and a notification of the changes is added.
  6. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of
  7. -- another product.
  8. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  9. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr
  10. --                       http://SmallEiffel.loria.fr
  11. --
  12. class EXAMPLE3
  13.    --
  14.    -- To add a loop variant for any knid of ITERATOR (for loop variant
  15.    -- fans only ;-).
  16.    --
  17.  
  18. creation make
  19.  
  20. feature {NONE}
  21.  
  22.    iterator: ITERATOR_WITH_VARIANT[INTEGER];
  23.    
  24.    make is
  25.       local
  26.      simple_iterator: ITERATOR[INTEGER];
  27.       do
  28.      !ITERATOR_ON_RANDOM_GENERATOR!simple_iterator.make(10);
  29.      !!iterator.make(simple_iterator);
  30.      io.put_string("First traversal :%N");
  31.      traverse;
  32.      io.put_string("Second traversal :%N");
  33.      traverse;
  34.       end;
  35.  
  36.    traverse is
  37.       do
  38.      from
  39.         iterator.start;
  40.      variant
  41.         iterator.variant_value
  42.      until
  43.         iterator.is_off
  44.      loop
  45.         io.put_integer(iterator.item);
  46.             io.put_character(' ');
  47.         iterator.next;
  48.      end;
  49.          io.put_new_line;
  50.       end;
  51.  
  52. end
  53.